package com.roc.admin.domain.service;

import com.roc.admin.domain.entity.Menu;

import java.util.List;

/**
 * 菜单领域服务
 */
public interface MenuDomainService {
    
    /**
     * 创建菜单
     *
     * @param menu 菜单实体
     * @return 创建后的菜单
     */
    Menu createMenu(Menu menu);
    
    /**
     * 更新菜单
     *
     * @param menu 菜单实体
     * @return 更新后的菜单
     */
    Menu updateMenu(Menu menu);
    
    /**
     * 删除菜单
     *
     * @param menuId 菜单ID
     */
    void deleteMenu(Long menuId);
    
    /**
     * 获取菜单树
     *
     * @return 菜单树
     */
    List<Menu> getMenuTree();
    
    /**
     * 根据角色ID获取菜单树
     *
     * @param roleId 角色ID
     * @return 菜单树
     */
    List<Menu> getMenuTreeByRoleId(Long roleId);
}